HTTP Requests (GET, POST, PUT, DELETE)

Mobile App Development - ফ্লাটার (Flutter) - HTTP এবং API Integration
373

Flutter এ HTTP Requests (GET, POST, PUT, DELETE) ব্যবহার করে API কল করা যায়, যার মাধ্যমে আপনি অ্যাপ্লিকেশনের সাথে সার্ভারের ডেটা আদানপ্রদান করতে পারেন। http প্যাকেজ Flutter এ HTTP রিকোয়েস্ট ব্যবস্থাপনা করার জন্য সবচেয়ে জনপ্রিয় এবং সহজ প্যাকেজ। নিচে প্রতিটি HTTP রিকোয়েস্ট (GET, POST, PUT, DELETE) এর বিস্তারিত আলোচনা এবং উদাহরণ দেয়া হলো।

HTTP প্যাকেজ সেটআপ করা:

Flutter এ HTTP রিকোয়েস্ট ব্যবহারের জন্য প্রথমে http প্যাকেজ ইনস্টল করতে হবে। আপনার pubspec.yaml এ নিচের মত করে http প্যাকেজ যোগ করুন:

dependencies:
  http: ^0.13.4

তারপর আপনার ডার্ট ফাইলে import করুন:

import 'package:http/http.dart' as http;
import 'dart:convert';

১. GET Request:

GET রিকোয়েস্ট ব্যবহার করে API থেকে ডেটা আনা যায়। এটি সাধারণত ডেটা ফেচ করার জন্য ব্যবহৃত হয়।

GET Request এর উদাহরণ:

Future<void> fetchData() async {
  final response = await http.get(Uri.parse('https://jsonplaceholder.typicode.com/posts/1'));

  if (response.statusCode == 200) {
    final Map<String, dynamic> jsonData = json.decode(response.body);
    print('Title: ${jsonData['title']}');
  } else {
    print('Failed to load data');
  }
}
  • http.get: এটি একটি GET রিকোয়েস্ট যা নির্দিষ্ট URL থেকে ডেটা আনে।
  • response.statusCode: রিকোয়েস্টের সফলতা বা ব্যর্থতা যাচাই করার জন্য ব্যবহার করা হয়। 200 মানে সফল, অন্যথায় ব্যর্থ।
  • json.decode(response.body): JSON ডেটাকে Dart Map এ রূপান্তরিত করা হয়।

২. POST Request:

POST রিকোয়েস্ট সাধারণত নতুন ডেটা ক্রিয়েট বা সার্ভারে পাঠানোর জন্য ব্যবহৃত হয়, যেমন ফর্ম ডেটা বা নতুন রিসোর্স তৈরি করা।

POST Request এর উদাহরণ:

Future<void> createPost() async {
  final response = await http.post(
    Uri.parse('https://jsonplaceholder.typicode.com/posts'),
    headers: <String, String>{
      'Content-Type': 'application/json; charset=UTF-8',
    },
    body: json.encode(<String, String>{
      'title': 'New Post',
      'body': 'This is the body of the new post.',
      'userId': '1',
    }),
  );

  if (response.statusCode == 201) {
    print('Post created: ${response.body}');
  } else {
    print('Failed to create post');
  }
}
  • http.post: এটি একটি POST রিকোয়েস্ট যা সার্ভারে ডেটা পাঠায়।
  • headers: API এর কনফিগারেশন অনুযায়ী হেডার সেট করা হয়। সাধারণত Content-Type হিসেবে application/json নির্ধারণ করা হয়।
  • body: JSON ডেটা encode করে API তে পাঠানো হয়।

৩. PUT Request:

PUT রিকোয়েস্ট ব্যবহার করে বিদ্যমান রিসোর্স আপডেট করা হয়। এটি সাধারণত সম্পূর্ণ রিসোর্স আপডেটের জন্য ব্যবহৃত হয়।

PUT Request এর উদাহরণ:

Future<void> updatePost() async {
  final response = await http.put(
    Uri.parse('https://jsonplaceholder.typicode.com/posts/1'),
    headers: <String, String>{
      'Content-Type': 'application/json; charset=UTF-8',
    },
    body: json.encode(<String, String>{
      'title': 'Updated Title',
      'body': 'This is the updated body of the post.',
      'userId': '1',
    }),
  );

  if (response.statusCode == 200) {
    print('Post updated: ${response.body}');
  } else {
    print('Failed to update post');
  }
}
  • http.put: এটি একটি PUT রিকোয়েস্ট যা বিদ্যমান রিসোর্স আপডেট করতে ব্যবহৃত হয়।
  • response.statusCode: ২০০ হলে সফল, অন্যথায় ব্যর্থতা নির্দেশ করে।

৪. DELETE Request:

DELETE রিকোয়েস্ট ব্যবহার করে সার্ভার থেকে একটি রিসোর্স মুছে ফেলা যায়।

DELETE Request এর উদাহরণ:

Future<void> deletePost() async {
  final response = await http.delete(
    Uri.parse('https://jsonplaceholder.typicode.com/posts/1'),
  );

  if (response.statusCode == 200) {
    print('Post deleted');
  } else {
    print('Failed to delete post');
  }
}
  • http.delete: এটি একটি DELETE রিকোয়েস্ট, যা নির্দিষ্ট রিসোর্স মুছে ফেলে।
  • response.statusCode: ২০০ হলে সফলতা নির্দেশ করে।

HTTP Requests এর সংক্ষিপ্ত তুলনা:

রিকোয়েস্টব্যবহারিক উদ্দেশ্য
GETডেটা ফেচ করা বা সার্ভার থেকে রিসোর্স আনা
POSTনতুন ডেটা ক্রিয়েট করা বা সার্ভারে ডেটা পাঠানো
PUTবিদ্যমান ডেটা সম্পূর্ণভাবে আপডেট করা
DELETEএকটি রিসোর্স বা ডেটা মুছে ফেলা

Error Handling (ত্রুটি ম্যানেজমেন্ট):

HTTP রিকোয়েস্টের সময় বিভিন্ন ধরনের ত্রুটি হতে পারে। তাই, ত্রুটি ম্যানেজমেন্ট করার জন্য try-catch ব্লক ব্যবহার করা হয়।

Future<void> fetchDataWithErrorHandling() async {
  try {
    final response = await http.get(Uri.parse('https://jsonplaceholder.typicode.com/posts/1'));

    if (response.statusCode == 200) {
      print('Data fetched successfully: ${response.body}');
    } else {
      print('Error: ${response.statusCode}');
    }
  } catch (e) {
    print('An error occurred: $e');
  }
}
  • try-catch: এটি অ্যাসিঙ্ক্রোনাস অপারেশন চলাকালে কোনো ত্রুটি ধরলে তাকে ম্যানেজ করে।
  • response.statusCode: HTTP স্ট্যাটাস কোড চেক করে, যা সফলতা বা ব্যর্থতা নির্দেশ করে।

HTTP Requests এর সেরা চর্চা:

  1. Headers ব্যবহার করুন: API এর সাথে কনফিগারেশন অনুযায়ী সঠিক হেডার ব্যবহার করা গুরুত্বপূর্ণ, যেমন Content-Type নির্ধারণ।
  2. Error Handling: প্রতিটি API কলের সময় ত্রুটি ম্যানেজ করার জন্য try-catch ব্যবহার করা উচিত।
  3. Model এবং Serialization: JSON ডেটাকে Dart Model এ রূপান্তরিত করা ভালো, যাতে ডেটা ব্যবস্থাপনা সহজ হয়।
  4. async এবং await ব্যবহার করুন: HTTP কল অ্যাসিঙ্ক্রোনাস হওয়ায় async এবং await ব্যবহার করা সেরা পদ্ধতি।

Flutter এ HTTP Requests ব্যবহার করে ডেটা ম্যানেজমেন্ট:

HTTP Requests (GET, POST, PUT, DELETE) ব্যবহারের মাধ্যমে Flutter এ আপনি ডায়নামিক অ্যাপ্লিকেশন তৈরি করতে পারেন, যেখানে ব্যবহারকারীর ইন্টারঅ্যাকশনের উপর ভিত্তি করে ডেটা ফেচ, আপডেট, এবং মুছে ফেলার কাজ করা যায়। এই পদ্ধতিগুলো ব্যবহার করে Flutter এ একটি কার্যকরী এবং পেশাদার API Integration সিস্টেম তৈরি করা সম্ভব।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...